# 通过索引可以从 DataFame 中选择特定的行数和列数，这种选择数据的方式称为“子集选择”。
import pandas as pd
import numpy as np

# 创建索引
data = pd.read_csv("person.csv")
print(data)
#   ID   Name  Age      City  Salary
# 0  1   Jack   28   Beijing   22000
# 1  2   Lida   32  Shanghai   19000
# 2  3   John   43  Shenzhen   12000
# 3  4  Helen   38  Hengshui    3500

# 设置"Name"为行索引
# data = pd.read_csv("person.csv", index_col="Age")
# a = data[["City", "Salary"]]
# print(a)

info = pd.read_csv("person.csv", index_col="Name")
# 获取单列数据，或者以列表的形式传入["Salary"]
a = info["Salary"]
print(a)

# set_index() 将已存在的列标签设置为 DataFrame 行索引。
info = pd.DataFrame({'Name': ['Parker', 'Terry', 'Smith', 'William'], 'Year': [2011, 2009, 2014, 2010],
                     'Leaves': [10, 15, 9, 4]})
# 设置Name为行索引
print(info.set_index('Name'))

# reset_index() 来恢复初始行索引
info = pd.DataFrame([('William', 'C'),
                     ('Smith', 'Java'),
                     ('Parker', 'Python'),
                     ('Phill', np.nan)],
                    index=[1, 2, 3, 4],
                    columns=('name', 'Language'))
print(info)
print(info.reset_index())
